package com.blb.service;

import com.blb.entity.Role;
import com.baomidou.mybatisplus.extension.service.IService;
import com.blb.entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author QuJiaHao
 * @since 2019-11-16
 */
public interface IRoleService extends IService<Role> {

    /**
     * 删除用户角色表
     * @param roleid
     */
    void delUserAndRole(Integer roleid);

    /**
     * 删除 用户-角色表
     * @param userid
     */
    void delRoleAndUser(String userid);

    /**
     * 添加用户角色表
     * @param userId
     * @param roleId
     */
    void addUserAndRole(String userId,int roleId);

    /**
     * 根据角色名和角色描述获取id
     * @param rolename
     * @param roledescribe
     * @return
     */
    Integer getIdByname(String rolename, String roledescribe);

    /**
     * 根据角色名查找角色是否存在
     * @param roleName
     * @return
     */
    Role getRoleByname(String roleName, String companyId);

    /**
     * 获取管理员名称
     * @return
     */
    List<User> getUserByRoleId();

    /**
     * 获取公司所属员工名(不包括管理员)
     * @return
     */
    List<User> getUserStaff(String companyId);

    /**
     * 根据用户id判断角色状态
     * @param id
     * @return
     */
    List<Role> getRoleStatusByUserId(String id);

    /**
     * 获取角色用户选中状态
     * @return
     */
    List<String> getOpt(Integer roleId);

    /**
     * 获取角色员工选中状态
     * @return
     */
    List<String> getUserStaffOpt(String companyId,Integer roleId);

}
